/**
 * @(#)AdministradorConfiguracion.java 1/04/2010
 *
 * Copyright (c) 2005-2010 PsiqueWare S.A. de C.V. All Rights Reserved.
 * This software is the proprietary information PsiqueWare S.A. de C.V.
 * Use is subject to license terms.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *
 * <br/>Usuario : AngelElectrico
 * <br/>Creaci&oacute;n: 1/04/2010 - 01:52:22 PM
 * <br/>
 * <br/>
 * <br/><t5>Cambios :</t5>
 * <br/><b>Fecha | Autor  |  Cambios</b>
 * <ul>
 * <li>1/04/2010 | <a href = "mailto:AngelElectrico@PsiqueWare.com">&Aacute;ngel El&eacute;ctrico</a> | Creaci&oacute;n del Objeto.</li>
 *
 * </ul>
 */

package com.psiqueware.alheli.configuracion;

import java.io.File;
import java.io.Serializable;
import java.util.Locale;

/**
 * Encargado de administrar la configuracion de una aplicaci&oacute;n.
 * <br/>Paquete Original: com.psiqueware.orquidea.gui
 * <br/>Nombre  Original: AdministradorConfiguracion
 * <br/>Oprima para ver : <a href="AdministradorConfiguracion.java.html"><i>C&oacute;digo Fuente</i> </a>
 *
 * @author <a href="mailto:AngelElectrico@PsiqueWare.com">AngelElectrico</a>
 * @version Revision: 1.1 1/04/2010 01:52:22 PM
 */
public interface AdministradorConfiguracion extends Serializable
{

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param idDominio identificador &uacute;nico del dominio al que pertence el contexto.Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto  del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre    del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor     a almacenar.
     */
    public void configura(final Long idDominio, final String contexto, final String nombre, final String valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param contexto del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre   del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor    a almacenar.
     */
    public void configura(final String contexto, final String nombre, final String valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param nombre del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor  a almacenar.
     */
    public void configura(final String nombre, final String valor);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param idDominio       identificador &uacute;nico del dominio al que pertence el contexto. Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public String busca(final Long idDominio, final String contexto, final String nombre, final String valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public String busca(final String contexto, final String nombre, final String valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public String busca(final String nombre, final String valorPorDefecto);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param idDominio identificador &uacute;nico del dominio al que pertence el contexto.Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto  del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre    del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor     a almacenar.
     */
    public void configura(final Long idDominio, final String contexto, final String nombre, final Boolean valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param contexto del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre   del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor    a almacenar.
     */
    public void configura(final String contexto, final String nombre, final Boolean valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param nombre del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor  a almacenar.
     */
    public void configura(final String nombre, final Boolean valor);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param idDominio       identificador &uacute;nico del dominio al que pertence el contexto. Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Boolean busca(final Long idDominio, final String contexto, final String nombre, final Boolean valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Boolean busca(final String contexto, final String nombre, final Boolean valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Boolean busca(final String nombre, final Boolean valorPorDefecto);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param idDominio identificador &uacute;nico del dominio al que pertence el contexto.Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto  del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre    del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor     a almacenar.
     */
    public void configura(final Long idDominio, final String contexto, final String nombre, final Long valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param contexto del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre   del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor    a almacenar.
     */
    public void configura(final String contexto, final String nombre, final Long valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param nombre del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor  a almacenar.
     */
    public void configura(final String nombre, final Long valor);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param idDominio       identificador &uacute;nico del dominio al que pertence el contexto. Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Long busca(final Long idDominio, final String contexto, final String nombre, final Long valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Long busca(final String contexto, final String nombre, final Long valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Long busca(final String nombre, final Long valorPorDefecto);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param idDominio identificador &uacute;nico del dominio al que pertence el contexto.Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto  del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre    del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor     a almacenar.
     */
    public void configura(final Long idDominio, final String contexto, final String nombre, final Float valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param contexto del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre   del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor    a almacenar.
     */
    public void configura(final String contexto, final String nombre, final Float valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param nombre del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor  a almacenar.
     */
    public void configura(final String nombre, final Float valor);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param idDominio       identificador &uacute;nico del dominio al que pertence el contexto. Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Float busca(final Long idDominio, final String contexto, final String nombre, final Float valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Float busca(final String contexto, final String nombre, final Float valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Float busca(final String nombre, final Float valorPorDefecto);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param idDominio identificador &uacute;nico del dominio al que pertence el contexto.Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto  del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre    del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor     a almacenar.
     */
    public void configura(final Long idDominio, final String contexto, final String nombre, final Double valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param contexto del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre   del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor    a almacenar.
     */
    public void configura(final String contexto, final String nombre, final Double valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param nombre del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor  a almacenar.
     */
    public void configura(final String nombre, final Double valor);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param idDominio       identificador &uacute;nico del dominio al que pertence el contexto. Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Double busca(final Long idDominio, final String contexto, final String nombre, final Double valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Double busca(final String contexto, final String nombre, final Double valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Double busca(final String nombre, final Double valorPorDefecto);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param idDominio identificador &uacute;nico del dominio al que pertence el contexto.Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto  del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre    del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor     a almacenar.
     */
    public void configura(final Long idDominio, final String contexto, final String nombre, final Integer valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param contexto del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre   del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor    a almacenar.
     */
    public void configura(final String contexto, final String nombre, final Integer valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param nombre del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor  a almacenar.
     */
    public void configura(final String nombre, final Integer valor);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param idDominio       identificador &uacute;nico del dominio al que pertence el contexto. Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Integer busca(final Long idDominio, final String contexto, final String nombre, final Integer valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Integer busca(final String contexto, final String nombre, final Integer valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Integer busca(final String nombre, final Integer valorPorDefecto);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param idDominio identificador &uacute;nico del dominio al que pertence el contexto.Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto  del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre    del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor     a almacenar.
     */
    public void configura(final Long idDominio, final String contexto, final String nombre, final Serializable valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param contexto del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre   del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor    a almacenar.
     */
    public void configura(final String contexto, final String nombre, final Serializable valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param nombre del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor  a almacenar.
     */
    public void configura(final String nombre, final Serializable valor);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param idDominio       identificador &uacute;nico del dominio al que pertence el contexto. Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Serializable busca(final Long idDominio, final String contexto, final String nombre, final Serializable valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Serializable busca(final String contexto, final String nombre, final Serializable valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Serializable busca(final String nombre, final Serializable valorPorDefecto);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param idDominio identificador &uacute;nico del dominio al que pertence el contexto.Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto  del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre    del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor     a almacenar.
     */
    public void configura(final Long idDominio, final String contexto, final String nombre, final File valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param contexto del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre   del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor    a almacenar.
     */
    public void configura(final String contexto, final String nombre, final File valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param nombre del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor  a almacenar.
     */
    public void configura(final String nombre, final File valor);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param idDominio       identificador &uacute;nico del dominio al que pertence el contexto. Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public File busca(final Long idDominio, final String contexto, final String nombre, final File valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public File busca(final String contexto, final String nombre, final File valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public File busca(final String nombre, final File valorPorDefecto);


    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param idDominio identificador &uacute;nico del dominio al que pertence el contexto.Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto  del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre    del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor     a almacenar.
     */
    public void configura(final Long idDominio, final String contexto, final String nombre, final Locale valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param contexto del atributo. No puede ser <code>null</code> ni vacio.
     * @param nombre   del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor    a almacenar.
     */
    public void configura(final String contexto, final String nombre, final Locale valor);

    /**
     * Agrega un atributo de configuraci&oaucte;n.
     *
     * @param nombre del atributo. No puede ser <code>null</code> ni vacio.
     * @param valor  a almacenar.
     */
    public void configura(final String nombre, final Locale valor);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param idDominio       identificador &uacute;nico del dominio al que pertence el contexto. Puede ser <code>null</code>, siendo <code>null</code> un dominio distinto de otros.
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Locale busca(final Long idDominio, final String contexto, final String nombre, final Locale valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param contexto        del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Locale busca(final String contexto, final String nombre, final Locale valorPorDefecto);

    /**
     * Busca un atributo de  configuraci&oaucte;n.
     *
     * @param nombre          del atributo buscado. No puede ser <code>null</code> ni vacio.
     * @param valorPorDefecto en caso de que el atributo no se haya dado de alta.
     *
     * @return cadena con el valor guardado del atributo; el valorPorDefecto en caso de no tener almacenado ning&uacute;n valor.
     */
    public Locale busca(final String nombre, final Locale valorPorDefecto);
}

